<!-- coderxiaoluo  𝙨𝙝𝙖𝙙𝙤𝙬 𝙤𝙛 𝙩𝙝𝙚 𝙨𝙪𝙣-->
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <input type="text">
  <script>
    // 防抖：不管有多少次触发 只会执行最后一次
    // 获取元素
    const inputEl = document.querySelector("input")
    // 定义一个防抖函数
    function foo(fn, t) {
      let timer = null
      const result = function () {
        // 每次执行先清除上一次的定时器
        if (timer) clearTimeout(timer)
        // 定义一个定时器
        timer = setTimeout(() => {
          // 执行fn函数
          fn()
          // 每次触发完，让itmer为null
          timer = null
        }, t)
      }
      return result
    }
    // 调用foo函数，将 foo的返回值赋值给input
    inputEl.oninput = foo(function () {
      console.log("我执行了")
    }, 1000)
  </script>

</body>

</html>